# PIL：Python Imaging Library，已经是Python平台事实上的图像处理标准库了。PIL功能非常强大，但API却非常简单易用。
# 由于PIL仅支持到Python 2.7，加上年久失修，于是一群志愿者在PIL的基础上创建了兼容的版本，
# 名字叫Pillow，支持最新Python 3.x，又加入了许多新特性，因此，我们可以直接安装使用Pillow。
# 发现，pillow是PIL（Python成像库）的一个分支，它不再被维护。所以，为了保持向后兼容性，往往使用旧的模块名称——PIL。所以，我们直接import PIL就可以了。
from PIL import Image, ImageFilter, ImageDraw, ImageFont
import random

im = Image.open('fan02.jpg')
x, y = im.size
height = im.height
width = im.width
print('照片00000长宽 %s %s ' % (x, y))
print('照片----长宽 %s %s ' % (width, height))
print('照片缩放到50%------------------------------------ ')
# 缩放到50%:y
im.thumbnail((x // 2, y // 2))
print('Resize image to: %sx%s' % (x // 2, y // 2))
print('# 把缩放后的图像用jpeg格式保存:------------------------------------ ')
im.save('thumbnail.jpg', 'jpeg')
# 其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。
# 比如，模糊效果也只需几行代码：
# 应用模糊滤镜:
im2 = im.filter(ImageFilter.BLUR)
im2.save('blur.jpg', 'jpeg')
# PIL的ImageDraw提供了一系列绘图方法，让我们可以直接绘图。比如要生成字母验证码图片：
print('#生成随机验证码------------------------------------ ')


# 生成随机文字
def rdmChar():
    return chr(random.randint(50, 60))


# 随机颜色
def rdmColor():
    return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))


# 240 x 60:生成长宽的矩形
width = 4 * 60
height = 60
image = Image.new('RGB', (width, height), (255, 255, 255))
# 创建Font对象:通常为ttf文件，还有少数ttc文件，可以在C:\Windows\Fonts中找到。
font = ImageFont.truetype('ygyxsziti2.0.ttf', 36)
# 创建Draw对象:
draw = ImageDraw.Draw(image)
# 输出文字:
for t in range(4):
    draw.text((60 * t + 10, 10), rdmChar(), font=font, fill=rdmColor())
# 模糊:
# image = image.filter(ImageFilter.BLUR)
image.save('code.jpg', 'jpeg')
